package com.tron.utils.tron;

import java.math.BigInteger;

/**
 * @description:
 * @projectName:Tron
 * @see:com.tron.utils.tron
 * @author:yst
 * @createTime:2022/11/28 17:15
 * version:
 **/
public interface Trc20Service {
    /**
     * 查询数量 最小单位。如果精度为6  那么如果为1个trc20就会返回1000000
     *
     * @param contract trc20合约地址
     * @param address  查询地址
     * @return
     */
    BigInteger balanceOf(String contract, String address);

    /**
     * 发起trc20转账
     *
     * @param privateKey 转出trc20的地址
     * @param contract   trc20合约地址
     * @param to         收款地址
     * @param amount     转出数量 带上进度 例如精度为6 那么1trc20就需要填1000000
     * @param remark     备注信息
     * @return
     */
    String transfer(String privateKey, String contract, String to, BigInteger amount, String remark);

    /**
     * 发起trc20转账，转出地址为配置私钥对应地址
     *
     * @param contract trc20合约地址
     * @param to       收款地址
     * @param amount   转出数量 带上进度 例如精度为6 那么1trc20就需要填1000000
     * @param remark   备注信息
     * @return
     */
    String transfer(String contract, String to, BigInteger amount, String remark);

}
